The present invention relates to the field of mark or symbology readers used to read marks (e.g., symbols, barcodes, text characters including alphanumeric, kanji, etc.) directly on objects, and more specifically to a reader that is configured to prioritize images for decoding to reduce the time for a successful decode.
Mark or symbology reading (also commonly termed barcode scanning) entails the aiming of an image acquisition sensor (e.g., CMOS camera, CCD, etc.) or vision system (e.g., VSOC) contained within the reader at a location on an object that contains a mark, and acquiring an image of the mark. Marks are known and available in a variety of shapes and sizes, and are designed to contain data, such as a set of predetermined patterns that represent an ordered group of characters or shapes. The reader, including an attached data processor (e.g., a microcomputer), can derive useful information from the data about the scanned object (e.g., its serial number, type, model, price, etc.).
Referring to FIG. 1, the image decoding process in known mark readers typically works in the following way. The image decoding process is initiated, such as by a trigger signal, as indicated at process block 50. At this point, the reader may or may not be pointing at the mark to be decoded. The reader then applies the first in possibly a selection of one or more parameter groups to an image acquisition system, as indicated at process block 52. Parameter groups include an arrangement of one or more parameter settings including exposure, gain, focus selection, illumination selection, and illumination control, for example. After the parameters for an image acquisition are applied, an illumination source on or within the reader is turned ON at process block 54 to illuminate the mark to be decoded. Illumination, either external or ambient illumination and/or illumination from the reader, reflects off of the intended mark and back to the reader and onto, i.e., to expose, an image acquisition sensor within the reader to acquire an image of the mark, as indicated at process block 56. Typically, the sensed image is transferred to memory (e.g., SDRAM), for storage, as indicated at process block 58.
If the reader is configured to acquire one or more additional images, as indicated at decision block 60, a new parameter group is applied to the acquisition system and the process repeats starting at process block 52. In some known variations, the reader is configured to acquire an image using a parameter group one time, or more than one time, or continuously.
Once an image has been stored to memory, a data processor selects the image from memory and executes a predetermined algorithm on the stored image data in an attempt to decode the image data, as indicated at process blocks 62 and 64. Typically, images are operated on in the same sequence as they are acquired and stored in memory, although some images may be discarded, for example.
Optionally, the reader is configured to perform some image filtering operations on the image prior to decoding, as indicated at decision block 66. This image filtering is performed by the processor, as indicated at process block 68, or it is performed by hardware prior to storing the image to memory. Filtering can be considered part of the decode processing itself, but when considered as a separate pre-processing step, it is designed to transform the image in a manner such that further decode processing is easier, (e.g., such as a contrast enhancement to enhance the mark features, or image smoothing to suppress background texture).
After the decoding step of process block 64, if the mark is found and successfully decoded, as indicated at decision block 70, the reader typically will transmit the decoded data from the mark by outputting the decoded data, and/or actuating some form of user feedback such as a beeper and/or status lights, and turn the illumination OFF, as indicated at process block 72. The process is then repeated upon activation of the next trigger event. If the decoding step does not result in a decoded image, the process typically returns to process block 62 to select another image from memory for decoding.
A primary weakness for both fixed mount readers and handheld readers is the large variation in overall trigger-to-decode times when a variety of marks are present. In one configuration, known systems are configured to cycle through one or more image capture parameter groups during the image acquisition process. In a second known configuration, the system begins the image acquisition process with a parameter group that corresponds to the last successful decode.
Both of these methods are not ideal when there are variations in the mark properties. For example, the first configuration may provide a more consistent decode time for similar mark types, however some marks will have a significantly longer decode than other types depending on the sequence of the previously determined parameter group. The second configuration optimizes for the last decoded mark type, but any variation of the marks attempted to be imaged and decoded will introduce inconsistent and longer decode times.
It is recognized that certain aspects of the mark to be read can make it difficult to detect or decode it within a limited number of images. In particular, certain codes that have low contrast (e.g., printing on a brown cardboard box) may require the imaging system to perform adjustments to system parameter settings, such as gain or exposure, during the acquisition process. In such cases, the initial image acquisition settings may be inadequate and there may be a delay until a final, more-sufficient parameter settings are adjusted.
A valued usability metric for mark readers is this trigger-to-decode response time, or the time between actuating a trigger to initiate the image decoding process and the reader returning a successful decode response.